<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var obj = {
        name: '张三',
        age: 23,
        height: '178cm',
        hobby: function () {
          console.log('喜欢篮球')
          return 123
        },
        a: undefined,
        b: null,
        c: true,
        d: 123,
      }
      var my_name = obj.name
    //   console.log(my_name)
    //   console.log(obj.age)
    //   console.log(obj.d)
    //   obj.hobby()
    //   console.log(obj.hobby())
    //   console.log(obj.c)

// var myobj={
//     name:'张三',
//     age:20,
//     height:'178cm',
//     hobby:function(a){
//            console.log('喜欢篮球',a);
//     },
//     a:undefined,
//     b:null,
//     c:true,
//     d:123
// }

// console.log(myobj['name'])
// console.log(myobj['age'])
// console.log(myobj['a'])
// myobj['hobby'](100);

//通过变量获取键值，只能通过中括号获取

// var obj ={
//     myname:'张三',
//     age:20,
// }
// var myage ='age'  
// // obj.myage ==> obj['myage']
// console.log(obj.myage) //会将myage转换为字符串 打点语法无法解析变量

// console.log(obj[myage])
/* 
  总结：
  对象的获取
  1、通过.语法自动将键名加引号转字符串
  2、通过[]默认是加引号的  如果不需要变量可以不加引号那么就会解析变量.如果是使用变量作为键名，只能通过[]获取键值
*/
var obj ={
    name:'张三',
    age:18,
    height:'178cm',
}
var myName = 'name'
console.log(obj.name)
console.log(obj['name'])
console.log(obj[myName])
    </script>
  </body>
</html>
